Skip to content

validation 包常用注解以及用法

@NotNull

  • 描述: 字段不能为 null

  • 示例:

    @NotNull(message = "Name cannot be null")
    private String name;

@NotEmpty

  • 描述: 字符串不能为空且长度必须大于0(不包括仅由空格组成的字符串)。

  • 示例:

    @NotEmpty(message = "Address cannot be empty")
    private String address;

@NotBlank

  • 描述: 字符串不能为空且至少包含一个非空白字符。

  • 示例:

    @NotBlank(message = "Phone number cannot be blank")
    private String phoneNumber;

@Size

  • 描述: 指定字段的最小和最大长度。

  • 参数:

    • min: 最小长度(默认为 0)。
    • max: 最大长度(默认为 Integer.MAX_VALUE)。
  • 示例:

    @Size(min = 5, max = 20, message = "Username must be between 5 and 20 characters")
    private String username;

@Min

  • 描述: 数字值必须大于或等于指定的最小值。

  • 参数:

    • value: 最小值。
  • 示例

    @Min(value = 18, message = "Age must be at least 18")
    private int age;

@Max

  • 描述: 数字值必须小于或等于指定的最大值。

  • 参数:

    • value: 最大值。
  • 示例:

    @Max(value = 100, message = "Age must not exceed 100")
    private int age;

@DecimalMin

  • 描述: 浮点数或整数必须大于或等于指定的最小值。

  • 参数:

    • value: 最小值。
    • inclusive: 是否包含边界值(默认为 true)。
  • 示例:

    @DecimalMin(value = "10.0", inclusive = false, message = "Price must be greater than 10.0")
    private double price;

@DecimalMax

  • 描述: 浮点数或整数必须小于或等于指定的最大值。

  • 参数:

    • value: 最大值。
    • inclusive: 是否包含边界值(默认为 true)。
  • 示例:

    @DecimalMax(value = "1000.0", inclusive = true, message = "Price must not exceed 1000.0")
    private double price;

@Digits

  • 描述: 数字必须是具有指定整数位数和小数位数的数值。

  • 参数:

    • integer: 整数位数。
    • fraction: 小数位数。
  • 示例:

    @Digits(integer = 3, fraction = 2, message = "Salary must have up to 3 digits before the decimal point and 2 after")
    private BigDecimal salary;

@Positive

  • 描述: 数字必须为正数(大于0)。

  • 示例:

    @Positive(message = "Quantity must be positive")
    private int quantity;

@PositiveOrZero

  • 描述: 数字必须为正数或零。

  • 示例:

    @PositiveOrZero(message = "Discount must be zero or positive")
    private int discount;

@Negative

  • 描述: 数字必须为负数(小于0)。

  • 示例:

    @Negative(message = "Debt must be negative")
    private int debt;

@NegativeOrZero

  • 描述: 数字必须为负数或零。

  • 示例:

    @NegativeOrZero(message = "Balance must be zero or negative")
    private int balance;

@Past

  • 描述: 日期必须在过去。

  • 示例:

    @Past(message = "Birth date must be in the past")
    private LocalDate birthDate;

@PastOrPresent

  • 描述: 日期必须在过去或现在。

  • 示例:

    @PastOrPresent(message = "Joining date must be in the past or present")
    private LocalDate joiningDate;

@Future

  • 描述: 日期必须在未来。

  • 示例:

    @Future(message = "Event date must be in the future")
    private LocalDate eventDate;

@FutureOrPresent

  • 描述: 日期必须在未来或现在。

  • 示例:

    @FutureOrPresent(message = "Due date must be in the future or present")
    private LocalDate dueDate;

@Pattern

  • 描述: 字符串必须匹配指定的正则表达式。

  • 参数:

    • regexp: 正则表达式。
    • flags: 正则表达式的标志(如 Pattern.CASE_INSENSITIVE)。
  • 示例:

    @Pattern(regexp = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$", message = "Invalid email format")
    private String email;

@AssertTrue

  • 描述: 表达式的结果必须为 true

  • 示例:

    @AssertTrue(message = "Agree to terms must be checked")
    private boolean agreeToTerms;

@AssertFalse

  • 描述: 表达式的结果必须为 false

  • 示例:

    @AssertFalse(message = "Spam must not be checked")
    private boolean spam;

@Valid

  • 描述: 对嵌套的对象递归地进行校验。

  • 示例:

    @Valid
    private Address address;
最近更新